#ifndef _MESH_RENDER_POLICY_H_
#define _MESH_RENDER_POLICY_H_

namespace DeviousRenderer
{
	class InputAssemberStage;
	class RasterizerStage;
	class OutputMergeStage;
	class Geometry;
	class Material;
	class MeshRenderPolicy
	{
	public:
		MeshRenderPolicy(const Geometry* geometry,const Material* material);
		virtual ~MeshRenderPolicy();

		void			BindStages();
		void			DrawStaticMesh();

	public:
		InputAssemberStage		m_InputAssemberState;
		RasterizerStage			m_RasterizerStage;
		OutputMergeStage		m_OutputMergetStage;

	protected:


		const Geometry*				m_Geometry;
		const Material*				m_Material;
	};

}
#endif//_MESH_RENDER_POLICY_H_